<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" 
      xmlns:ui="http://java.sun.com/jsf/facelets" 
      xmlns:h="http://java.sun.com/jsf/html" 
      xmlns:f="http://java.sun.com/jsf/core">
      
      <ui:composition template="/estrutura.xhtml">
      <ui:define name="direita">
         <h:messages infoClass="info" errorClass="erro" warnClass="warn" fatalClass="fatal" />
      </ui:define>  
  		<h1>Cadastro de Pessoas</h1>
  	
  		<h:form>
  		<h:panelGrid columns="3">
  		#{mens.escolha}
  		<h:selectOneMenu value="#{geralBean.locale}">
  			<f:selectItems value="#{geralBean.localesDisponiveis}"/>
  			<f:converter converterId="conversorLocale"/>
  		</h:selectOneMenu>
  		<h:commandButton value="OK" actionListener="#{geralBean.atualizarLocale}"/>
  		</h:panelGrid>
  		</h:form>

  		<h:form rendered="#{empty cadastroPessoasBean.pessoaSelecionada}">
  			<h:panelGrid id="gridTipoPessoa" columns="2">
  				<f:facet name="header">Tipo de Pessoa</f:facet>
  				<h:selectOneRadio value="#{cadastroPessoasBean.tipoNovaPessoa}">
  					<f:selectItem itemLabel="Pessoa Fisica" itemValue="PF"/>
  					<f:selectItem itemLabel="Pessoa Juridica" itemValue="PJ"/>
  				</h:selectOneRadio>
  				<h:commandButton value="Criar nova" action="#{cadastroPessoasBean.criar}" />
  			</h:panelGrid>
  		</h:form>

 		<h:form rendered="#{not empty cadastroPessoasBean.pessoaSelecionada}">
  			<h:panelGrid columns="3">
  				<f:facet name="header">Dados gerais</f:facet>
	  			<h:outputLabel for="nome" value="Nome"/>
	  			<h:inputText id="nome" value="#{cadastroPessoasBean.pessoaSelecionada.nome}" />
	  			<h:message for="nome"/>

	  			<h:outputLabel value="Email" for="email" />
  				<h:inputText id="email" value="#{cadastroPessoasBean.pessoaSelecionada.email}" validatorMessage="Email Inválido!">
  					<f:validateRegex pattern=".+@.+"/>  					
  				</h:inputText>
  				<h:message for="email" styleClass="erro"/>
  			
	  			<h:outputLabel for="telefone" value="telefone"/>
	  			<h:inputText id="telefone" value="#{cadastroPessoasBean.pessoaSelecionada.telefone}" />
	  			<h:message for="telefone"/>
  			</h:panelGrid>
  			<h:panelGrid columns="3" id="gridPessoaFisica" rendered="#{cadastroPessoasBean.pessoaFisicaSelecionada}">
  				<f:facet name="header">Dados de pessoa física</f:facet>
  				<h:outputLabel value="Rg" for="rg" />
  				<h:inputText id="rg" value="#{cadastroPessoasBean.pessoaSelecionada.rg}"/>
  				<h:message for="rg" styleClass="erro"/>


  				<h:outputLabel value="Cpf" for="cpf" />
  				<h:inputText id="cpf" value="#{cadastroPessoasBean.pessoaSelecionada.cpf}" validatorMessage="CPF Inválido!">
  				<!--  	<f:validateRegex pattern="\d{3}(\.\d{3}){2}-\d{2}"/> -->
  					<f:validator validatorId="ValidadorDeCPFSimples"/>
  				</h:inputText>
  				<h:message for="cpf" styleClass="erro"/>


  				<h:outputLabel value="Data de nascimento" for="dataNascimento" />
  				<h:inputText id="dataNascimento" value="#{cadastroPessoasBean.pessoaSelecionada.dataNascimento}" converterMessage="Máscara da data dd/mm/aaaa">
  					<f:convertDateTime pattern="dd/MM/yyyy"/>
  				</h:inputText>
  				<h:message for="dataNascimento" styleClass="erro"/>


  				<h:outputLabel value="Sexo" for="sexo" />
  				<h:selectOneRadio id="sexo" value="#{cadastroPessoasBean.pessoaSelecionada.sexo}">
  					<f:selectItems value="#{cadastroPessoasBean.sexos}" var="s" itemLabel="#{s.nome}" />
  				</h:selectOneRadio>
  				<h:message for="sexo" styleClass="erro"/>
  				
  			</h:panelGrid>
  			<h:panelGrid columns="3" id="gridPessoaJuridica" rendered="#{cadastroPessoasBean.pessoaJuridicaSelecionada}">
  				<f:facet name="header">Dados de pessoa jurídica</f:facet>
  				<h:outputLabel value="Cnpj" for="cnpj" />
  				<h:inputText id="cnpj" value="#{cadastroPessoasBean.pessoaSelecionada.cnpj}" validatorMessage="CNPJ Inválido!">
  					<f:validateRegex pattern="\d{2}(\.\d{3}){2}/\d{4}-\d{2}"/>
  				</h:inputText>
  				<h:message for="cnpj" styleClass="erro"/>

  				<h:outputLabel value="Razão Social" for="razao" />
  				<h:inputText id="razao" value="#{cadastroPessoasBean.pessoaSelecionada.razaoSocial}"/>
  				<h:message for="rg" styleClass="erro"/>

  				<h:outputLabel value="Inscrição Estadual" for="inscricaoEstadual" />
  				<h:inputText id="inscricaoEstadual" value="#{cadastroPessoasBean.pessoaSelecionada.inscricaoEstadual}"/>
  				<h:message for="inscricaoEstadual" styleClass="erro"/>

  				<h:outputLabel value="Inscrição Municipal" for="inscricaoMunicipal" />
  				<h:inputText id="inscricaoMunicipal" value="#{cadastroPessoasBean.pessoaSelecionada.inscricaoMunicipal}"/>
  				<h:message for="inscricaoMunicipal" styleClass="erro"/>
  			</h:panelGrid>
  			<h:commandButton action="#{cadastroPessoasBean.salvar}" image="#{resource['imagens:salvar2.png']}" /> &nbsp; &nbsp;
  			<h:commandButton immediate="true" action="#{cadastroPessoasBean.cancelar}"  image="#{resource['imagens:cancelar2.png']}" />
  		</h:form>
  		<h:form>
  			<h2>lista de pessoas cadastradas</h2>
  			<h:dataTable value="#{cadastroPessoasBean.lista}" var="p" rowClasses="linha1, linha2">
  				<h:column>
  					<f:facet name="header">Nome</f:facet>
  					<h:outputText value="#{p.nome}" escape="true"/>
				</h:column>
  				<h:column>
	  				<f:facet name="header">Email</f:facet>
	  				<h:outputText value="#{p.email}" escape="true" />
  				</h:column>
  				<h:column>
  					<f:facet name="header">Telefone</f:facet>
  					<h:outputText value="#{p.telefone}" escape="true" />
 				</h:column>
  				<h:column>
  					<f:facet name="header">Ações</f:facet>
  					<h:commandLink value="Editar">
  						<f:setPropertyActionListener value="#{p}" target="#{cadastroPessoasBean.pessoaSelecionada}"/>
  					</h:commandLink> | 
  					<h:commandLink value="Excluir" action="#{cadastroPessoasBean.excluir}">
  						<f:setPropertyActionListener value="#{p}" target="#{cadastroPessoasBean.pessoaSelecionada}"/>
  					</h:commandLink>
 				</h:column>
 				
  			</h:dataTable>
  		</h:form>
  		</ui:composition>
  
</html>